var _ = require("lodash");
// _.merge(object, [sources])
// 该方法类似_.assign 用于合并两个或多个对象的自有和继承的可枚举属性。
// 该方法会创建一个新的对象，将源对象的可枚举属性复制到目标对象中。
// 如果源对象和目标对象有相同的属性，那么源对象的属性值会覆盖目标对象的属性值,也就是后面出现的会覆盖之前出现的
//他不会改变源对象，他会重新创建一个新的对象
const object = {
  a: [{ b: 2 }, { d: 4 }],
};

const source1 = {
  a: [{ b: 1 }, { c: 3 }],
  e: 5,
};

const source2 = {
  a: [{ b: 1 }, { c: 3, f: 6 }],
  e: [6, 7],
};

const merged = _.merge({}, object, source1, source2);

console.log(merged);

let obj1 = {
  a: 1,
  b: 2,
};
let obj2={
  a:2,
  c:3
}
let d = _.merge(obj1,obj2)
console.log(d);

//  _.mergeWith(object, sources, customizer)
// 整体和merge方法的效果一致，但是他会调用一个方法来控制合并的方式